Computer programs often include logic written in source code using programming languages such as Java™, Visual C++™, Visual Basic™, etc. Often, the source code is compiled into a machine-language object file that is specific to a particular computing architecture, and the object files are linked into executable files that are deployed to run on a given computer system. Alternatively, the source code can be deployed without being compiled, and executed using an interpreter or just-in-time compiler resident on the computing system.
Typically, substantial amounts of testing are performed before deploying executable and/or source code. For example, a large-scale project such as a web search engine may have hundreds or thousands of different logic paths with various interdependencies, and the various logic paths are exercised using unit tests or other methodologies before deploying the code. Because of the extensive testing required to deploy computer code, it is often difficult and/or time consuming to release updates to deployed code.